#ifndef Base_Monitor_h__
#define Base_Monitor_h__

#include <mutex>
#include <condition_variable>

class Base_Monitor
{

public:
	std::mutex mutex;
	std::condition_variable condition;
	
	int thread_work_state;
	enum
	{
		active, wait
	};

	void weak_up() { condition.notify_all(); thread_work_state = active; }

	static Base_Monitor * get_instance();
private:
	Base_Monitor() {}
	~Base_Monitor() {}
};


#endif // Base_Monitor_h__
